Determining Touch Locations and Forces Thereto on a Touch and Force Sensing Surface

ABSTRACT

A projected capacitive touch and force sensor capable of detecting multiple touches thereto and forces thereof is coupled with a digital device having multi-touch and force decoding capabilities. Once a touch has been established, a force thereof may be assigned to the touch based upon the magnitude of change of capacitance values determined during scans of the projected capacitive touch and force sensor. The touch forces applied to the touch sensor from the associated tracked touch points may be utilized in further determining three dimensional gesturing, e.g., X, Y and Z positions and forces, respectively.

RELATED PATENT APPLICATION

This application is a continuation-in-part of U.S. patent applicationSer. No. 13/830,891; filed Mar. 14, 2013; which claims priority to U.S.Provisional Patent Application No. 61/617,831; filed Mar. 30, 2012. Thisapplication is a continuation-in-part of U.S. patent application Ser.No. 14/097,370; filed Dec. 5, 2013; which claims priority to U.S.Provisional Patent Application Ser. No. 61/777,910; filed Mar. 12, 2013;wherein all of which are hereby incorporated by reference herein for allpurposes.

TECHNICAL FIELD

The present disclosure relates to capacitive touch sensing, and moreparticularly, to touch sensing that determines both touch locations andpressure (force) applied at the touch locations.

BACKGROUND

Human interface devices include touch control systems that are based ontouch sensing surfaces, e.g., pads, screens, etc., using capacitivesensors that change capacitance values when touched. Transforming thetouch(es) on the touch sensor into one or more touch locations isnon-trivial. Tracking one or more touches on the touch sensor is alsochallenging. Advanced touch control systems are capable of detecting notonly a single touch and/or movement on a touch sensing surface such as atouch screen, but also so-called multi-touch scenarios in which a usertouches more than one location and/or moves more than one finger overthe respective touch sensing surface, e.g., gesturing.

Key challenges of multi-touch systems are: limited processing speed oflow cost systems, such as processing capabilities of, for example butnot limited to, 8-bit microcontroller architectures as thesearchitectures may be unable to do advanced math for processing therespective signals generated by the touch sensing device. There may alsoexist limited touch scanning performance, for example the entire systemmay be unable to reasonably sample the entire plane of the touch sensoror screen every “frame.” Other challenges include having enough programmemory space to provide for touch location determination programs thatare concise, modular and general purpose. Limited random access memory(RAM) space may make the touch determination system unable to storemultiple entire “images” of the touch detection and location(s) thereofsimultaneously.

Hence, there exists a need to improve and simplify touch determinationmethods. Conventional solutions were threshold based and requiredcomplex computations. Hence, there is a need for touch determinationmethods that are more robust and less computation intensive.Furthermore, there exists a need for high quality multi-touch decoding,in particular, a method and/or system that can be implemented with, forexample but not limited to, a low-cost 8-bit micro controllerarchitecture.

Present technology touch sensors generally can only determine a locationof a touch thereto, but not a force value of the touch to the touchsensing surface. Being able to determine not only the X-Y coordinatelocation of a touch but also the force of that touch gives anothercontrol option that may be used with a device having a touch sensingsurface with such force sensing feature.

SUMMARY

The aforementioned problems are solved, and other and further benefitsachieved by a touch location and force determining method and systemdisclosed herein.

According to an embodiment, a method for decoding multiple touches andforces thereof on a touch sensing surface may comprise the steps of:scanning a plurality of channels aligned on an axis for determining selfcapacitance values of each of the plurality of channels; comparing theself capacitance values to determine which one of the channels has alocal maximum self capacitance value; scanning a plurality of nodes ofthe at least one channel having the local maximum self capacitance valuefor determining mutual values of the nodes; comparing the mutual valuesto determine which one of the nodes has the largest mutual capacitancevalue, wherein the node having the largest mutual capacitance value onthe local maximum self capacitance value channel may be a potentialtouch location; and determining a force at the potential touch locationfrom a change in the mutual capacitance values of the node at thepotential touch location during no touch and during a touch thereto.

According to a further embodiment, the method may comprise the steps of:determining if at least one of the self values may be greater than aself touch threshold, wherein if yes then continue to the step ofscanning a plurality of nodes of the at least one channel having thelargest self value, and if no then end a touch detection frame ascompleted. According to a further embodiment, the method may comprisethe steps of: determining left and right slope values for the at leastone self value, wherein: the left slope value may be equal to the atleast one self value minus a self value of a channel to the left of theat least one channel, and the right slope value may be equal to the atleast one self value minus a self value of a channel to the right of theat least one channel.

According to a further embodiment, the method may comprise the steps of:determining if the left slope value may be greater than zero (0) and theright slope value may be less than zero (0), wherein if yes then returnto the step of scanning the plurality of nodes of the at least onechannel, and if no then continue to next step; determining if the leftslope value may be greater than zero (0) and greater than the rightslope value, wherein if yes then return to the step of scanning theplurality of nodes of the at least one channel, and if no then continueto next step; determining if the left slope value may be less than zero(0) and greater than a percentage of the right slope value, wherein ifyes then return to the step of scanning the plurality of nodes of the atleast one channel, and if no then continue to next step; determining ifthere may be another self value, wherein if yes then return to the stepof determining if at least one of the self values may be greater thanthe self touch threshold value using the another self value, and if nothen end a touch detection frame as completed.

According to a further embodiment, the method may comprise the steps of:determining if at least one of the mutual values may be greater than amutual touch threshold, wherein if yes then continue to the step ofscanning a plurality of nodes of the at least one channel having thelargest self value, and if no then end the touch detection frame ascompleted. According to a further embodiment, the method may comprisethe steps of: determining a next slope value, wherein the next slopevalue may be equal to a current mutual value minus a next mutual valueof a next node; and determining a previous slope value, wherein theprevious slope value may be equal to the current mutual value minus aprevious mutual value of a previous node.

According to a further embodiment, the method may comprise the steps of:determining if the next slope value may be less than zero (0) and theprevious slope value may be greater than zero (0), wherein if yes thenbegin the step of validating the node, and if no then continue to nextstep; determining if the next slope value may be greater than zero (0)and less than a percentage of the previous slope value, wherein if yesthen begin the step of validating the node, and if no then continue tonext step; determining if the next slope value may be less than zero (0)and greater than the previous slope value, wherein if yes then begin thestep of validating the node, and if no then continue to next step;determining if there may be another mutual value, wherein if yes thenreturn to the step of determining if at least one of the mutual valuesmay be greater than the mutual touch threshold, and if no then continueto the next step; and determining if there may be another self value,wherein if yes then examine another self value and return to the step ofdetermining if at least one of the self values may be greater than aself touch threshold, and if no then end the touch detection frame ascompleted.

According to a further embodiment of the method, the step of validatingthe node may comprise the steps of: identifying the node having a localmaximum mutual value as a current node; determining if there may be avalid node north of the current node, wherein if no then continue to thestep of determining if there may be a valid node south of the currentnode, and if yes then perform a mutual measurement on the north node andcontinue to the next step; determining if the north node may be greaterthen the current node, if yes then make the north node the current nodeand continue to the step of determining whether a touch point alreadyexists at this node, and if no then continue to the next step;determining if there may be a valid node south of the current node,wherein if no then continue to the step of determining if there may be avalid node east of the current node, and if yes then perform a mutualmeasurement on the south node and continue to the next step; determiningif the south node may be greater then the current node, wherein if yesthen make the south node the current node and continue to the step ofdetermining whether a touch point already exists at this node, and if nothen continue to the next step; determining if there may be a valid nodeeast of the current node, wherein if no then continue to the step ofdetermining if there may be a valid node west of the current node, andif yes then perform a mutual measurement on the east node and continueto the next step; determining if the east node may be greater then thecurrent node, if yes then make the east node the current node andcontinue to the step of determining whether a touch point already existsat this node, and if no then continue to the next step; determining ifthere may be a valid node west of the current node, wherein if no thencontinue to the step of determining if there may be a valid node left ofthe current node, and if yes then perform a mutual measurement on thewest node and continue to the next step; determining if the west nodemay be greater then the current node, if yes then make the west node thecurrent node and continue to the step of determining whether a touchpoint already exists at this node, and if no then continue to the nextstep; determining if there may be a valid node left of the current node,wherein if no then define a left mutual value as a center mutual valueminus a right mutual value and continue to the step of determining afine position for the node, and if yes then perform a mutual measurementon the left node and continue to the next step; determining if there maybe a valid node right of the current node, wherein if no then define themutual value as the center mutual value minus the left mutual value andcontinue to the step of determining the fine position for the node, andif yes then perform a mutual measurement on the right node and continueto the next step; defining a fine position of the node by subtractingthe left value from the right value, dividing this difference by thecenter value and multiplying the result thereof by 64 and continue tothe next step; and determining whether interpolation was performed foreach axis, wherein if yes, then add another touch point to a list of alldetected touch points and return to the step of determining if there maybe additional mutual values, and if no, then interpolate an other axisby using left and right nodes of the other axis for starting again atthe step of determining if there may be a valid node left of the currentnode.

According to another embodiment, a system for determining gesturingmotions and forces thereof on a touch sensing surface having a visualdisplay may comprise: a first plurality of electrodes arranged in aparallel orientation having a first axis, wherein each of the firstplurality of electrodes may comprise a self capacitance; a secondplurality of electrodes arranged in a parallel orientation having asecond axis substantially perpendicular to the first axis, the firstplurality of electrodes may be located over the second plurality ofelectrodes and form a plurality of nodes may comprise overlappingintersections of the first and second plurality of electrodes, whereineach of the plurality of nodes may comprise a mutual capacitance; aflexible electrically conductive cover over the first plurality ofelectrodes, wherein a face of the flexible electrically conductive coverforms the touch sensing surface; a plurality of deformable spacersbetween the flexible electrically conductive cover and the firstplurality of electrodes, wherein the plurality of deformable spacersmaintains a distance between the flexible electrically conductive coverand the first plurality of electrodes; a digital processor and memory,wherein digital outputs of the digital processor may be coupled to thefirst and second plurality of electrodes; an analog front end coupled tothe first and second plurality of electrodes; an analog-to-digitalconverter (ADC) having at least one digital output coupled to thedigital processor; wherein values of the self capacitances may bemeasured for each of the first plurality of electrodes by the analogfront end, the values of the measured self capacitances may be stored inthe memory; values of the mutual capacitances of the nodes of at leastone of the first electrodes having at least one of the largest values ofself capacitance may be measured by the analog front end, the values ofthe measured mutual capacitances may be stored in the memory; and thedigital processor uses the stored self and mutual capacitance values fordetermining a gesturing motion and at least one force associatedtherewith applied to the touch sensing surface.

According to a further embodiment, the digital processor, memory, analogfront end and ADC may be provided by a digital device. According to afurther embodiment, the digital device may comprise a microcontroller.According to a further embodiment, the flexible electrically conductivecover may comprise a flexible metal substrate. According to a furtherembodiment, the flexible electrically conductive cover may comprise aflexible non-metal substrate and an electrically conductive coating on asurface thereof. According to a further embodiment, the flexibleelectrically conductive cover may comprise a substantially lighttransmissive flexible substrate and a coating of Indium Tin Oxide (ITO)on a surface of the flexible substrate. According to a furtherembodiment, the flexible electrically conductive cover may comprise asubstantially light transmissive flexible substrate and a coating ofAntimony Tin Oxide (ATO) on a surface of the flexible substrate.

According to yet another embodiment of the method for determining thegesturing motion and the at least one force associated therewith maycomprise the step of selecting an object shown in the visual display bytouching the object with a first force. According to a furtherembodiment, the method may comprise the step of locking the object inplace by touching the object with a second force. According to a furtherembodiment, the method may comprise the step of releasing the lock onthe object by touching the object with a third force and moving thetouch in a direction across the touch sensing surface. According to afurther embodiment, the method may comprise the step of releasing thelock on the object by removing the touch at a first force to the objectand then touching the object again at a second force. According to afurther embodiment of the method, the second force may be greater thanthe first force.

According to still another embodiment, a method for determining thegesturing motion and the at least one force associated therewith maycomprise the steps of: touching a right portion of an object shown inthe visual display with a first force; touching a left portion of theobject with a second force; wherein when the first force may be greaterthan the second force the object rotates in a first direction, and whenthe second force may be greater than the first force the object rotatesin a second direction.

According to a further embodiment of the method, the first direction maybe clockwise and the second direction may be counter-clockwise.According to a further embodiment of the method, when the touch at theleft portion of the object moves toward the right portion of the objectthe object rotates in a third direction, and when the touch at the rightportion of the object moves toward the left portion of the object mayrotate in a fourth direction. According to a further embodiment of themethod, the first and second directions may be substantiallyperpendicular to the third and fourth directions.

According to a further embodiment of the method for determining thegesturing motion and the at least one force associated therewith maycomprise the step of: changing a size of an object shown in the visualdisplay by touching a portion of the object with a force, wherein thegreater the force the large the size of the object becomes. According toa further embodiment of the method, the size of the object may be fixedwhen the touch and the force may be moved off of the object. Accordingto a further embodiment of the method, the size of the object varies inproportion to the amount of force applied to the object.

According to a further embodiment of the method for determining thegesturing motion and the at least one force associated therewith maycomprise the step of: handling pages of a document shown in the visualdisplay by touching a portion of the document with a force sufficient toflip through the pages. According to a further embodiment of the method,the step of removing a currently visible page may further comprise thestep of moving the touch at the currently visible page in a firstdirection parallel with the touch sensing surface. According to afurther embodiment of the method, the step of inserting the removed pageinto a new document may comprise the step of touching the removed pagewith the force near the new document.

According to a further embodiment of the method for determining thegesturing motion and the at least one force associated therewith maycomprise the step of changing values of an alpha-numeric character shownin the visual display by touching the alpha-numeric character withdifferent forces, wherein a first force will cause the alpha-numericcharacter to increment and a second force will cause the alpha-numericcharacter to decrement. According to a further embodiment of the method,the value of the alpha-numeric character may be locked when the touchmay be moved off of the alpha-numeric character and parallel to thetouch sensing surface.

According to a further embodiment of the method for determining thegesturing motion and the at least one force associated therewith maycomprise the steps of: incrementing a value of an alpha-numericcharacter shown in the visual display by touching an upper portion ofthe alpha-numeric character with a force; and decrementing the value ofthe alpha-numeric character by touching an lower portion of thealpha-numeric character with the force. According to a furtherembodiment of the method, the value of the alpha-numeric character maybe locked when the touch may be moved off of the alpha-numeric characterand parallel to the touch sensing surface. According to a furtherembodiment of the method, a speed of incrementing or decrementing thevalue of the alpha-numeric character may be proportional to a magnitudeof the force applied to upper portion or lower portion, respectively, ofthe alpha-numeric character. According to a further embodiment of themethod, the alpha-numeric character may be a number. According to afurther embodiment of the method, the alpha-numeric character may be aletter of an alphabet.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete understanding of the present disclosure thereof may beacquired by referring to the following description taken in conjunctionwith the accompanying drawings wherein:

FIG. 1 illustrates a schematic block diagram of an electronic systemhaving a capacitive touch sensor, a capacitive touch analog front endand a digital processor, according to the teachings of this disclosure;

FIG. 2 illustrates schematic elevational views of metal over capacitivetouch sensors, according to the teachings of this disclosure;

FIG. 3 illustrates a schematic elevational view of a touch sensorcapable of detecting both locations of touches thereto and forces ofthose touches, according to the teachings of this disclosure;

FIGS. 4A to 4D illustrate schematic plan views of touch sensors havingvarious capacitive touch sensor configurations, according to theteachings of this disclosure;

FIGS. 4E and 4F illustrate schematic plan views of self and mutualcapacitive touch detection of a single touch to a touch sensor,according to the teachings of this disclosure;

FIGS. 4G to 4K illustrate schematic plan views of self and mutualcapacitive touch detection of two touches to a touch sensor, accordingto the teachings of this disclosure;

FIG. 5 illustrates a schematic process flow diagram for multi-touch andforce decoding of a touch sensor as shown in FIG. 1, according tospecific example embodiments of this disclosure;

FIG. 6 illustrates a graph of single touch peak detection data,according to specific example embodiments of this disclosure;

FIG. 7 illustrates a schematic plan diagram of potential touch andmutual touch locations of a touch sensor, according to specific exampleembodiments of this disclosure;

FIG. 8 illustrates a schematic plan view diagram of a touch sensorshowing a cache data window thereof, according to specific exampleembodiments of this disclosure;

FIG. 9 illustrates a graph of self scan values and a table of mutualscan values for two touch peak detection data, according to specificexample embodiments of this disclosure;

FIGS. 10 and 11 illustrate schematic diagrams of historic and currentpoint locations used for a point weighting example, according to theteachings of this disclosure;

FIG. 12 illustrates schematic drawings of a normal finger touch and aflat finger touch, according to the teachings of this disclosure;

FIGS. 13 to 23 illustrate schematic process flow diagrams for touchdecoding and force determination of the decoded touch(es), according tospecific example embodiments of this disclosure;

FIG. 24 illustrates a schematic plan view of a finger of a hand touchinga surface of a touch sensor, according to a specific example embodimentof this disclosure;

FIG. 25 illustrates a schematic plan view of two fingers of a handtouching a surface of a touch sensor, according to another specificexample embodiment of this disclosure;

FIG. 26 illustrates a schematic plan view of a finger of a hand touchingan object projected on a surface of a touch sensor, according to yetanother specific example embodiment of this disclosure;

FIG. 27 illustrates a schematic plan view of a finger of a hand touchinga document projected on a surface of a touch sensor, according to stillanother specific example embodiment of this disclosure; and

FIG. 28 illustrates a schematic plan view of a finger of a hand touchingone digit of a number projected on a surface of a touch sensor,according to another specific example embodiment of this disclosure.

While the present disclosure is susceptible to various modifications andalternative forms, specific example embodiments thereof have been shownin the drawings and are herein described in detail. It should beunderstood, however, that the description herein of specific exampleembodiments is not intended to limit the disclosure to the particularforms disclosed herein, but on the contrary, this disclosure is to coverall modifications and equivalents as defined by the appended claims.

DETAILED DESCRIPTION

According to various embodiments, a series of optimized processes may beprovided that scan a plurality of (electrically) conductive columns androws arranged in a matrix on a surface, e.g., touch sensor display orpanel, and which identify and track a plurality of touches thereto andforces thereof. These processes may be further optimized for operationwith a low cost 8-bit microcontroller, according to specific embodimentsof this disclosure.

Once a touch has been established, a force thereof may be assigned tothe touch based upon the magnitude of change of the capacitance valuesdetermined during scans of a touch sensor, as more fully describedhereinabove. Also the touch forces applied to the touch sensor from theassociated tracked touch points may be utilized in further determiningthree dimensional gesturing, e.g., X, Y and Z positions and forces,respectively. For example, proportional force at a touch location(s)allows three dimensional control of an object projected onto a screen ofthe touch sensor. Differing pressures on multiple points, e.g., duringmore then one touch (multiple fingers touching face of touch sensor),allows object rotation control. A touch at a certain force may allowselecting an object(s) and a touch at a difference, e.g., greater force,may be used to fix the location(s) of the object(s) on the display ofthe touch sensor.

Rocking multi-touch presses to produce varying touch forces may be usedfor rotation of an object. A vertical motion, e.g., vertical sliding,press may be used to scale a vertical size of an object. A horizontalmotion, e.g., horizontal sliding, press may be used to scale ahorizontal size of an object. Touches with varying force may be used toflip through pages of a document. A varying force may be used to inserta page into a stack of pages of a document. A vertical or horizontalgesture and force may be used to activate a function, e.g., empty trashbin icon. Varying touch pressure may be used to lift a page off of adocument for transmission to another display. Varying touch pressure maychange the scope of a gesture movement, e.g., selecting a pictureinstead of the full document. Pressing with a sweeping gesture may beused for an object release and discard. Varying touch pressures may beused to select alpha-numeric characters or drop function boxes.

According to various embodiments, these processes utilize both self andmutual scans to perform an optimized scan of the plurality of conductivecolumns and rows used for touch sensing. Using that as the basis, theproposed processes may use a subset of the data from the plurality ofconductive columns and rows in order to do all necessary processing fortouch location identification and tracking. The various embodimentsspecifically focus on a low-resource requirement solution for achievingtouch location identification and tracking.

According to various embodiments, self capacitances of either theconductive columns or rows may be measured first then mutualcapacitances of only those conductive columns or rows may be measured incombination with the other axis of conductive rows or columns. Thevarious embodiments disclosed herein overcome the problem oftransforming these self and mutual capacitance measurements into one ormore touches and forces thereof, and tracking these one or more touchesand forces thereof through multiple frames of the capacitancemeasurements of the conductive columns or rows as described hereinabove.

According to various embodiments, at least one process may scan aplurality of conductive columns and rows arranged in a matrix, detectand track up to N touches, using various unique techniques disclosed andclaimed herein. A process of peak detection examines slope ratios toaccurately and quickly determine peak measurements. According to variousembodiments, the challenge of tracking multiple touch locations may besolved through time on associated ones of the plurality of conductivecolumns or rows.

The various embodiments may allow for N touches to compensate fortouches of different finger positions, e.g., such as a flat finger, thatprevents missed touches and substantially eliminates incorrect touches.

According to various embodiments, a process is provided for quicklyidentifying accurate touches instead of only looking at true peaks,wherein a “virtual” peak may be found by examining slope ratios usingvarious techniques disclosed herein for touch identification. Acombination of unique processes, according to the teachings of thisdisclosure, may be used to achieve better accuracy and speedimprovements for multi-touch decoding. For example, a peak detectionprocess may be implemented as a “fuzzy” peak detection process thatexamines slope relationships, not just signs of the slopes between theconductive columns measured. Furthermore, a so-called “nudge technique”may be used that “nudges” a potential touch location to a best locationby examining adjacent values thereto. “Windowed” data cache may be usedto accelerate processing in a low capacity RAM environment, e.g., 8-bitmicrocontroller. Interpolation may be used to increase the touchlocation resolution based upon measured values adjacent thereto.Multi-touch tracking may be used to identify N touches through time.Multi-touch tracking may be used to track N touches through time.Weighted matching may be used in a weighting method to best match touchpoints over time. “Area” detection may use a process that allows easyarea and/or pressure detection based upon the sum of the nudged valuesfor a given touch location.

Significant accuracy and speed of decoding improvements may use acombination of novel techniques for use in a low memory capacity and lowcost digital processor, e.g., microcontroller, microprocessor, digitalsignal processor (DSP), application specific integrated circuit (ASIC),programmable logic array (PLA), etc. Various embodiments may track eightor more touches and forces thereof on, for example but not limited to, a3.5 inch touch sensor capacitive sensor array. For example when using aMicrochip PIC18F46K22 (64K ROM, <4K RAM) microcontroller.

Referring now to the drawings, the details of example embodiments areschematically illustrated. Like elements in the drawings will berepresented by like numbers, and similar elements will be represented bylike numbers with a different lower case letter suffix.

Referring to FIG. 1, depicted is a schematic block diagram of anelectronic system having a capacitive touch sensor, a capacitive touchanalog front end and a digital processor, according to the teachings ofthis disclosure. A digital device 112 may comprise a digital processorand memory 106, an analog-to-digital converter (ADC) controller 108, anda capacitive touch analog front end (AFE) 110. The digital device 112may be coupled to a touch sensor 102 comprised of a plurality ofconductive columns 104 and rows 105 arranged in a matrix and having aflexible electrically conductive cover 103 thereover. It is contemplatedand within the scope of this disclosure that the conductive rows 105and/or conductive columns 104 may be, for example but are not limitedto, printed circuit board conductors, wires, Indium Tin Oxide (ITO) orAntimony Tin Oxide (ATO) coatings on a clear substrate, e.g.,display/touch screen, etc., or any combinations thereof. The flexibleelectrically conductive cover 103 may comprise metal, conductivenon-metallic material, ITO or ATO coating on a flexible clear substrate(plastic), etc. The digital device 112 may comprise a microcontroller,microprocessor, digital signal processor, application specificintegrated circuit (ASIC), programmable logic array (PLA), etc., and mayfurther comprise one or more integrated circuits (not shown), packagedor unpackaged.

Referring to FIG. 2, depicted are schematic elevational views of metalover capacitive touch sensors, according to the teachings of thisdisclosure. A capacitive sensor 238 is on a substrate 232. On eitherside of the capacitive sensor 238 are spacers 234, and an electricallyconductive flexible cover 103, e.g., metal, ITO or ATO coated plastic,etc.; is located on top of the spacers 234 and forms a chamber 236 overthe capacitive sensor 238. When a force 242 is applied to a location onthe flexible cover 103, the flexible cover 103 moves toward thecapacitive sensor 238, thereby increasing the capacitance thereof. Thecapacitance value(s) of the capacitive sensor(s) 238 is measured and anincrease in capacitance value thereof will indicate the location of theforce 242 (e.g., touch). The capacitance value of the capacitive sensor238 will increase the closer the flexible cover 103 moves toward theface of the capacitive sensor 238. Metal over capacitive touchtechnology is more fully described in Application Note AN1325, entitled“mTouch™ Metal over Cap Technology” by Keith Curtis and Dieter Peter,available www.microchip.com; and is hereby incorporated by referenceherein for all purposes.

Referring to FIG. 3, depicted is a schematic elevational view of a touchsensor capable of detecting both locations of touches thereto and forcesof those touches, according to the teachings this disclosure. A touchsensor capable of detecting both a location of a touch(es) thereto and aforce(s) of that touch(es) thereto, generally represented by the numeral102, may comprise a plurality of conductive rows 105, a plurality ofconductive columns 104, a plurality of deformable spacers 334, and aflexible electrically conductive cover 103.

The conductive columns 104 and the conductive rows 105 may be used indetermining a location(s) of a touch(es), more fully described inTechnical Bulletin TB3064, entitled “mTouch™ Projected Capacitive TouchScreen Sensing Theory of Operation” referenced hereinabove, and themagnitude of changes in the capacitance values of the conductivecolumn(s) 104 at and around the touch location(s) may be used indetermining the force 242 (amount of pressure applied at the touchlocation). The plurality of deformable spacers 334 may be used tomaintain a constant spacing between the flexible conductive cover 103and a front surface of the conductive columns 104 when no force 242 isbeing applied to the flexible electrically conductive cover 103. Whenforce 242 is applied to a location on the flexible electricallyconductive cover 103, the flexible electrically conductive cover 103will be biased toward at least one conductive column 104, therebyincreasing the capacitance thereof. Direct measurements of capacitancevalues and/or ratios of the capacitance values may be used indetermining the magnitude of the force 242 being applied at the touchlocation(s).

Referring back to FIG. 1, digital devices 112, e.g., microcontrollers,now include peripherals that enhance the detection and evaluation ofsuch capacitive value changes. More detailed descriptions of variouscapacitive touch system applications are more fully disclosed inMicrochip Technology Incorporated application notes AN1298, AN1325 andAN1334, available at www.microchip.com, and all are hereby incorporatedby reference herein for all purposes.

One such application utilizes the capacitive voltage divider (CVD)method to determine a capacitance value and/or evaluate whether thecapacitive value has changed. The CVD method is more fully described inApplication Note AN1208, available at www.microchip.com; and a moredetailed explanation of the CVD method is presented in commonly ownedUnited States Patent Application Publication No. US 2010/0181180,entitled “Capacitive Touch Sensing using an Internal Capacitor of anAnalog-To-Digital Converter (ADC) and a Voltage Reference,” by DieterPeter; wherein both are hereby incorporated by reference herein for allpurposes.

A Charge Time Measurement Unit (CTMU) may be used for very accuratecapacitance measurements. The CTMU is more fully described in Microchipapplication notes AN1250 and AN1375, available at www.microchip.com, andcommonly owned U.S. Pat. No. 7,460,441 B2, entitled “Measuring a longtime period;” and U.S. Pat. No. 7,764,213 B2, entitled “Current-timedigital-to-analog converter,” both by James E. Bartling; wherein all ofwhich are hereby incorporated by reference herein for all purposes.

It is contemplated and within the scope of this disclosure that any typeof capacitance measurement circuit having the necessary resolution maybe used in determining the capacitance values of the plurality ofconductive columns 104 and nodes (intersections of columns 104 and rows105), and that a person having ordinary skill in the art of electronicsand having the benefit of this disclosure could implement such acapacitance measurement circuit.

Referring to FIGS. 4A to 4D, depicted are schematic plan views of touchsensors having various capacitive touch sensor configurations, accordingto the teachings of this disclosure. FIG. 4A shows conductive columns104 and conductive rows 105. Each of the conductive columns 104 has a“self capacitance” that may be individually measured when in a quiescentstate, or all of the conductive rows 105 may be actively excited whileeach one of the conductive columns 104 has self capacitance measurementsmade thereof. Active excitation of all of the conductive rows 105 mayprovide a stronger measurement signal for individual capacitivemeasurements of the conductive columns 104.

For example, if there is a touch detected on one of the conductivecolumns 104 during a self capacitance scan, then only that conductivecolumn 104 having the touch detected thereon need be measured furtherduring a mutual capacitance scan thereof. The self capacitance scan mayonly determine which one of the conductive columns 104 has been touched,but not at what location along the axis of that conductive column 104where it was touched. The mutual capacitance scan may determine thetouch location along the axis of that conductive column 104 byindividually exciting (driving) one at a time the conductive rows 105and measuring a mutual capacitance value for each one of the locationson that conductive column 104 that intersects (crosses over) theconductive rows 105. There may be an insulating non-conductivedielectric (not shown) between and separating the conductive columns 104and the conductive rows 105. Where the conductive columns 104 intersectwith (crossover) the conductive rows 105, mutual capacitors 120 arethereby formed. During the self capacitance scan above, all of theconductive rows 105 may be either grounded or driven with a logicsignal, thereby forming individual column capacitors associated witheach one of the conductive columns 104.

FIGS. 4B and 4C show interleaving of diamond shaped patterns of theconductive columns 104 and the conductive rows 105. This configurationmay maximize exposure of each axis conductive column and/or row to atouch (e.g., better sensitivity) with a smaller overlap between theconductive columns 104 and the conductive rows 105. FIG. 4D showsreceiver (top) conductive rows (e.g., electrodes) 105 a and transmitter(bottom) conductive columns 104 a comprising comb like meshing fingers.The conductive columns 104 a and conductive rows 105 a are shown in aside-by-side plan view, but normally the top conductive rows 105 a wouldbe over the bottom conductive columns 104 a. Self and mutual capacitivetouch detection is more fully described in Technical Bulletin TB3064,entitled “mTouch™ Projected Capacitive Touch Screen Sensing Theory ofOperation” by Todd O'Connor, available at www.microchip.com; andcommonly owned United States Patent Application Publication No. US2012/0113047, entitled “Capacitive Touch System Using Both Self andMutual Capacitance” by Jerry Hanauer; wherein both are herebyincorporated by reference herein for all purposes.

Referring to FIGS. 4E and 4F, depicted are schematic plan views of selfand mutual capacitive touch detection of a single touch to a touchsensor, according to the teachings of this disclosure. In FIG. 4E atouch, represented by a picture of a part of a finger, is atapproximately the coordinates of X05, Y07. During self capacitive touchdetection each one of the rows Y01 to Y09 may be measured to thedetermine the capacitance values thereof. Note that baseline capacitancevalues with no touches thereto for each one of the rows Y01 to Y09 havebeen taken and stored in a memory (e.g., memory 106—FIG. 1). Anysignificant capacitance change to the baseline capacitance values of therows Y01 to Y09 will be obvious and taken as a finger touch. In theexample shown in FIG. 4E the finger is touching row Y07 and thecapacitance value of that row will change, indicating a touch thereto.However it is still unknown from the self capacitance measurements whereon this row that the touch has occurred.

Once the touched row (Y07) has been determined using the selfcapacitance change thereof, mutual capacitive detection may be used indetermining where on the touched row (Y07) the touch has occurred. Thismay be accomplished by exciting, e.g., putting a voltage pulse on, eachof the columns X01 to X12 one at a time while measuring the capacitancevalue of row Y07 when each of the columns X01 to X12 is individuallyexcited. The column (X05) excitation that causes the largest change inthe capacitance value of row Y07 will be the location on that row whichcorresponds to the intersection of column X05 with row Y07, thus thesingle touch is at point or node X05, Y07. Using self and mutualcapacitance touch detection significantly reduces the number of row andcolumn scans to obtain the X,Y touch coordinate on the touch sensor 102.In this example, nine (9) rows were scanned during self capacitive touchdetection and twelve (12) columns were scanned during mutual capacitivetouch detection for a total number of 9+12=21 scans. If individual x-ycapacitive touch sensors for each node (location) were used then9×12=108 scans would be necessary to find this one touch, a significantdifference. It is contemplated and within the scope of this disclosurethat the self capacitances of the columns X01 to X21 may be determinedfirst then mutual capacitances determined of a selected column(s) byexciting each row Y01 to Y09 to find the touch location on the selectedcolumn(s).

Referring to FIGS. 4G to 4K, depicted are schematic plan views of selfand mutual capacitive touch detection of two touches to a touch sensor,according to the teachings of this disclosure. In FIG. 4G two touches,represented by a picture of parts of two fingers, are at approximatelythe coordinates of X05, Y07 for touch #1 and X02, Y03 for touch #2.During self capacitive touch detection each one of the rows Y01 to Y09may be measured to the determine the capacitance values thereof. Notethat baseline capacitance values with no touches thereto for each one ofthe rows Y01 to Y09 have been taken and stored in a memory (e.g., memory106—FIG. 1). Any significant capacitance changes to the baselinecapacitance values of the rows Y01 to Y09 will be obvious and taken asfinger touches. In the example shown in FIG. 4H the first finger istouching row Y07 and the second finger is touching row Y03, wherein thecapacitance values of those two rows will change, indicating touchesthereto. However it is still unknown from the self capacitancemeasurements where on these two row that the touches have occurred.

Once the touched rows (Y07 and Y03) have been determined using the selfcapacitance changes thereof, mutual capacitive detection may be used indetermining where on these two touched rows (Y07 and Y03) the toucheshave occurred. Referring to FIG. 4I, this may be accomplished byexciting, e.g., putting a voltage pulse on, each of the columns X01 toX12 one at a time while measuring the capacitance value of row Y07 wheneach of the columns X01 to X12 is individually excited. The column (X05)excitation that causes the largest change in the capacitance value ofrow Y07 will be the location on that row that corresponds to theintersection of column X05 with row Y07. Referring to FIG. 4J, likewisemeasuring the capacitance value of row Y03 when each of the columns X01to X12 is individually excited determines where on column Y03 the touch#2 has occurred. Referring to FIG. 4K, the two touches are at points ornodes (X05, Y07) and (X02, Y03). It is contemplated and within the scopeof this disclosure that if the capacitances of more then one of theselected rows, e.g., Y07 and Y03, can be measured simultaneously, thenonly one set of individual column X01 to X12 excitations is needed indetermining the two touches to the touch sensor 102.

Referring to FIG. 5, depicted is a schematic process flow diagram formulti-touch and force decoding of a touch sensor as shown in FIG. 1,according to specific example embodiments of this disclosure. A processof multi-touch decoding may comprise the steps of Data Acquisition 502,Touch Identification 504, Force Identification 505, Touch and ForceTracking 506, and Data Output 508. The step of Touch Identification 504may further comprise the steps of Peak Detection 510, Nudge 512 andInterpolation 514, more fully described hereinafter.

Data Acquisition.

Data Acquisition 502 is the process of taking self capacitancemeasurements of the plurality of conductive columns 104 or conductiverows 105, and then mutual capacitance measurements of selected ones ofthe plurality of conductive columns 104 or conductive rows 105, andintersections of the plurality of conductive rows 105 or conductivecolumns 104, respectively therewith, to acquire touch identificationdata. The touch identification data may be further processed to locatepotential touches and forces thereto on the touch sensor 102 using theprocess of Touch Identification 504 and Force Identification 505,respectively, as more fully described hereinafter.

Touch Identification

Touch Identification 504 is the process of using the touchidentification data acquired during the process of Data Acquisition 502to locate potential touches on the touch sensor 102. The following are asequence of process steps to determine which ones of the plurality ofconductive columns 104 or conductive rows 105 to select that have atouch(es) thereto using self capacitance measurements thereof, and whereon the selected conductive columns 104 or conductive rows 105 thetouch(es) may have occurred using mutual capacitance measurementsthereof.

Peak Detection

Peak detection 510 is the process of identifying where potential touchlocations may be on the touch sensor 102. However according to theteachings of this disclosure, instead of only looking at actual detected“peaks,” peak detection may purposely be made “fuzzy,” e.g., identifyingpotential peaks by looking for ratios of differences of slope values aswell as slope “signs,” not just a low-high-low value sequence. A“virtual” peak may be detected by examining slope ratios, e.g., 2:1slope ratio, wherein a change in slope may be identified as a potentialpeak. This may be repeated until no additional peaks are detected.

Nudge

Nudge 512 is the process of examining each adjacent location of apotential touch location once it has been identified. If the adjacentlocation(s) has a greater value than the existing touch potentiallocation then eliminate the current potential touch location andidentify the adjacent location having the greater value as the potentialtouch location (see FIG. 8 and the description thereof hereinafter).

Interpolation

Once a touch location has been identified, Interpolation 514 is theprocess that examines the adjacent values to generate a higherresolution location.

Force Identification

Force Identification 505 is the process of using some of the touchidentification data acquired during the process of Data Acquisition 502in combination with the potential touch locations identified during theprocess of Touch Identification 504. The mutual capacitance measurementsassociated with the potential touch locations, determined during theprocess of Touch Identification 504, may be compared with referencecapacitance values of those same locations with no touches appliedthereto (smaller capacitance values). The magnitude of a capacitancechange may thereby be used in determining the force applied by theassociated potential touch previously determined.

Touch and Force Tracking

Touch and Force Tracking 506 is the process of comparing time sequential“frames” of touch identification data and then determining which touchesare associated between sequential frames. A combination of weighting and“best guess” matching may be used to track touches and forces thereofthrough multiple frames during the process of Data Acquisition 502described hereinabove. This is repeated for every peak detected andevery touch that was identified on the previous frame. A “frame” is theset of self and mutual capacitive measurements of the plurality ofconductive columns 104 or conductive rows 105 in order to capture asingle set of touches at a specific time. Each full set of scans (a“frame”) of the self and mutual capacitance measurements of theplurality of conductive columns 104 or conductive rows 105 to acquiretouch identification data of the touch sensor 102 at a given timeassociated with that frame.

Touch and Force Tracking 506 associates a given touch in one frame witha given touch in a subsequent frame. Touch and Force tracking may createa history of touch frames, and may associate the touch locations of acurrent frame with the touch locations of a previous frame or frames. Inorder to associate a previous touch location to a current potentialtouch location a “weighting” function may be used. The weight values(“weight” and “weight values” will be used interchangeably herein)between time sequential touch locations (of different frames) representthe likelihood that time sequential touch locations (of differentframes) are associated with each other. Distance calculations may beused to assign weight values between these associated touch locations. A“true” but complex and processor intensive calculation for determiningweight value between touch locations is:

Weight value=SQRT[(X _(previous) −X _(current))²+(Y _(previous) −Y_(current))²]  Eq. (1)

A simplified distance (weight value) calculation may be used thatmeasures ΔX and ΔY and then sums them together:

Weight value′=ABS(X _(previous) −X _(current))+ABS(Y _(previous) −Y_(current))  Eq. (2)

The above simplified weight value calculation, Eq. (2), creates adiamond shaped pattern for a given weight value instead of a circularpattern of the more complex weight value calculation, Eq. (1). Use ofEq. (2) may be optimized for speed of the weight value calculations in asimple processing system, distance may be calculated based upon the sumof the change of the X-distances and the change in the Y-distances,e.g., Eq. (2) herein above. A better weight value may be defined as asmaller distance between sequential touch locations.

For each new touch location a weight value may be calculated for alltouch locations from the previous frame. The new touch location is thenassociated with the previous touch location having the best weight valuetherebetween. If the previous touch location already has an associatedtouch location from a previous frame, a secondary second-best weightvalue for each touch location may be examined. The touch location withthe lower-cost second-best weight value may then be shifted to itssecond best location, and the other touch location may be kept as thebest touch location. This process is repeated until all touch locationshave been associated with previous frame touch locations, or have beenidentified as “new touches” having new locations with no touch locationsfrom the previous frame being close to the new touch location(s).

An alternative to the aforementioned weighting process may be avector-based process utilizing a vector created from the previous twolocations to create the most likely next location. This vector-basedweighting process may use the same distance calculations as theaforementioned weighting process, running it from multiple points andmodifying the weight values based upon from which point the measurementwas taken.

By looking at the previous two locations of a touch, the next “mostlikely” location of that touch may be predicted. Once the extrapolatedlocation has been determined that location may be used as the basis fora weighting value. To improve matching on the extrapolated location an“acceleration model” may be used to add weighting points along thevector to the extrapolated locations and past the extrapolatedlocations. These additional points assist in detecting changes in speedof the touch movement, but may not be ideal for determining direction ofthe touch motion.

Once the touch locations have been established, forces thereto may beassigned to these touch locations based upon the magnitude of change ofthe capacitance values determined during the process of Data Acquisition502, as more fully described hereinabove. Also the forces applied to thetouch sensor 102 from the associated tracked touch points may beutilized in further determining three dimensional gesturing, e.g., X-Yand Z directions.

Referring to FIGS. 10 and 11, depicted are schematic diagrams ofhistoric and current point locations used for a point weighting example,according to the teachings of this disclosure. Once weights have beengenerated, the best combination of weight values and associated touchesmay be generated. Certain touch scenarios may cause nearly identicalweight values, in which case the second best weight values should becompared and associations appropriately shifted. Depending upon theorder of operations, points A and D may be associated first. As theweight values for B are generated BD is a better match then BC. In thiscase look at secondary weight values. Is it less costly to shift A to beassociated with C or to shift B to be associated with C?

By extending this sequence of operations, all points can haveassociations shifted for the best overall match, not just the best localmatch. Some caution may be needed to prevent infinite loops ofre-weighing. This may be accomplished by limiting the number of shiftsto a finite number. Referring now to FIG. 11, points A and B areexisting points, and points 1 and 2 are “new” points that need to beassociated.

Step 1) Calculate weight values between touch locations:

-   -   A        1 weight=5 ((ΔX=2)+(ΔY=3)=5)    -   A        2 weight=4    -   B        1 weight=10    -   B        2 weight=5        Step 2) Select the “best” pair (lowest weight) for each existing        touch location:    -   A        >2 weight=4 and B        >2 weight=5        Step 3) If more than one existing touch location pairs with a        given new touch location, then look at the second-best touch        locations for each and the difference in weight values from the        best to the second best pair (the “cost”).    -   A        1 (weight: 5) Cost=1: (A        1 weight)−(A        2 weight 4)    -   B        1 (weight: 10) Cost=5: (B        1 weight)−(B        2 weight 5)        Step 4) Shift the pairing to the lowest cost pair thereby        allowing the other touch location to maintain the original        pairing.    -   A        1    -   B        2        Step 5) Repeat steps 2) through 4) until all pairing are 1:1. If        there are more touch locations than existing touch locations        then start tracking a new touch location. If fewer new touch        locations than existing “worst match” touch locations then these        worst match touch locations may be lost and no longer tracked.

Flat Finger Identification

Referring to FIG. 12, depicted are schematic drawings of a normal fingertouch and a flat finger touch, according to the teachings of thisdisclosure. One challenge of identifying a touch is the “flat finger”scenario. This is when the side or flat part of a finger 1020, ratherthen the finger tip 1022, is placed on the touch sensor 102. Note that aflat finger 1020 may generate two or more potential touch locations 1024and 1026. It is possible using the teaching of this disclosure to detecta flat finger 1020 by accumulating the sum of the values of all nodesnudged to each peak. If the sum of these values surpasses a thresholdthen it is likely caused by a flat finger touch. If a flat finger touchis detected then other touches that are near the flat finger peak(s) maybe suppressed. In addition, comparing the forces associated with the twoor more potential touch locations 1024 and 1026 may also be used indetecting a flat finger 1020 situation.

Data Output

Referring back to FIG. 5, Data Output 508 is the process of providingdetermined touch location coordinates and associated forces appliedthereto in a data packet(s) to a host system for further processing.

Touch Determination

Given an array of touch data, examine the differences between the valuesthereof and flag certain key scenarios as potential peaks for furtherexamination. All touch data values below a threshold value may beignored when determining touch locations.

Key Scenario 1: True Peak

Referring to FIG. 6, identify the transition from a positive to anegative slope as a potential peak. This would be the point circled incolumn 7 of the example data values shown in FIG. 6.

Key Scenario 2: Slope Ratio Beyond Threshold (“Fuzzy” Peak Detection)

A key threshold of slope ratios may be used to flag additional peaks.The threshold value used may be, for example but is not limited to, 2:1;so instances where there is a change of slope greater than 2:1 may beidentified as potential peaks. This applies to positive and negativeslopes. This would be the point circled in column 6 of the example datavalues shown in FIG. 6.

Why not Just Look at the Slope Signs?

Since the self scan is only one axis of a two-axis sensor array (e.g.,conductive rows 105 and conductive columns 104 of touch sensor 102, FIG.1), it is possible for two touches that are off by a single “bar” (e.g.,column) to only show a single peak. With the example data, there couldbe two touches, one at 6,6 and another at 7,7 (see FIGS. 6 and 9).Without the additional peak detection, the touch at 6,3 may not bedetected.

Nudge Location Refinement

Once a potential touch location is identified, each adjacent touchlocation may be examined to determine if they have a greater value. If agreater value is present, eliminate the current potential touch locationand identify the touch location of the greater value as a potentialtouch location. This process is repeated until a local peak has beenidentified.

Referring to FIG. 6, depicted is a graph of single touch peak detectiondata, according to specific example embodiments of this disclosure. Anexample graph of data values for one column (e.g., column 7) of thetouch sensor 102 is shown wherein a maximum data value determined fromthe self and mutual capacitance measurements of column 7 occurs at thecapacitive touch sensor 104 area located a row 7, column 7. All datavalues that are below a threshold value may be ignored, e.g., belowabout 12 in the graphical representation shown in FIG. 6. Therefore onlydata values taken at row 6 (data value=30) and at row 7 (data value=40)need be processed in determining the location of a touch to the touchsensor 102. Slope may be determined by subtracting a sequence ofadjacent row data values in a column to produce either a positive ornegative slope value. When the slope value is positive the data valuesare increasing, and when the slope value is negative the data values aredecreasing. A true peak may be identified as a transition from apositive to a negative slope as a potential peak. A transition from apositive slope to a negative slope is indicated at data value 422 of thegraph shown in FIG. 6.

However another touch may have occurred at column 6 and was not directlymeasured in the column 7 scan, but shows up as data value 420 during thecolumn 7 scan. Without another test besides the slope sign transition,the potential touch at column 6 may be missed. Therefore a threshold ofslope ratios may further be used to flag additional potential peaks.Slope is the difference between two data values of adjacent conductivecolumns 104. This threshold of slope ratios may be, for example but isnot limited to, 2:1 so instances where there is a change of slopegreater than 2:1 may be identified as another potential peak. This mayapply to both positive and negative slopes. For example, the data value420, taken at row 6, has a left slope of 23:1 (30−7) and a right slopeof 10:1 (40−30). The data value 422, taken at row 7, has a left slope of10:1 (40−30) and right slope of −30:1 (10−40). The slope ratio for row 6of 23:10, exceeds the example 2:1 threshold and would be labeled forfurther processing. All other data values are below the data valuethreshold and may be ignored.

Referring to FIG. 7, depicted is a schematic plan diagram of potentialtouch and mutual touch locations of a touch sensor, according tospecific example embodiments of this disclosure. Once a potential touchlocation is identified, each adjacent location thereto may be examinedto determine whether any one of them may have a greater data value thanthe current potential touch location (labeled “C” in FIGS. 7( a) &7(b)). If a greater data value is found, then the current potentialtouch location may be eliminated and the touch location having thegreater value may be identified as a potential touch location. This isreferred to herein as the process of Nudge 512 and may be repeated untila data peak has been identified.

During a data acquisition scan of a column of rows, only tier one nodes(labeled “1” in FIGS. 7( a) and 7(b)—adjacent locations to the currentpotential touch location) are examined. If any of these tier one nodeshas a larger data value than the data value of the current potentialtouch location, a new current touch location is shifted (“nudged”) tothat node having the highest data value and the process of Nudge 512 isrepeated. If a tier one node is already associated with a differentpotential peak, then no further searching is necessary and the currentdata peak may be ignored. Tier two nodes (labeled “2” in FIGS. 7( a) &7(b)—adjacent locations to the tier one nodes) are examined when thereis a potential of a large area activation of the touch sensor 102.

After one conductive column 104 has been scanned for mutual capacitancevalues, the process of Nudge 512 may be speeded up by storing the mutualcapacitance data values of that one column in a cache memory, then doingthe Nudge 512 first on the tier one nodes, and then on the tier twonodes of that one column from the mutual capacitance data values storedin the cache memory. Then only after there are no further nudges to doin that one column will the process of Nudge 512 examine the tier oneand tier two nodes from the mutual capacitance measurement scans of thetwo each adjacent columns on either side of the column having theprocess of Nudge 512 performed thereon.

Interpolation of the potential touch location may be performed by usingthe peak data value node (touch location) as well as each adjacent nodethereto (e.g., tier one nodes from a prior Nudge 512) to createsub-steps between each node. For example, but not limited to, 128 stepsmay be created between each node. Referring to FIG. 7( c), node A is thepotential touch location and nodes B, C, D and E are tier one nodesadjacent thereto. The interpolated X, Y location may be found using thefollowing equations:

Location_(x)=(D _(Value) −B _(Value))/A _(Value)*64

Location_(y)=(E _(Value) −C _(Value))/A _(Value)*64

It is contemplated and within the scope of this disclosure thatvariations of the above equations may be used based upon the ratio ofvalues and the signs of the numerator of the division.

Referring to FIG. 8, depicted is a schematic plan view diagram of atouch sensor showing a cache data window thereof, according to specificexample embodiments of this disclosure. The conductive columns 104 ofthe touch sensor 102 may be scanned column by column for selfcapacitance values until all conductive columns 104 have been scanned.Each conductive column 104 indicating a potential touch from the selfcapacitance data may be sequentially scanned for determining mutualcapacitive values thereof (touch data) and when peaks are discoveredthey may be processed contemporaneously with the column scan.Furthermore, touch data may be stored in a cache memory for furtherprocessing. Since the Nudge 512 looks at the first tier nodes then thesecond tier nodes, if necessary, not all of the touch data from all ofthe conductive columns 104 need be stored at one time. This allows asimple caching system using a minimum amount of random access memory(RAM). For example, storing five columns of touch data in a cache. Thefive columns are contiguous and a cache window may move across thecolumns 104 of the touch sensor 102 one column 104 at a time. It iscontemplated and within the scope of this disclosure that more or fewerthan five columns of touch data may be stored in a cache memory andprocessed therefrom, and/or self capacitance scanning by rows instead ofcolumns may be used instead. All descriptions herein may be equallyapplicable to self capacitance scanning of rows then mutual capacitancescanning by columns of those row(s) selected from the self capacitancescan data.

Whenever a Mutual Scan of a first or second tier node (capacitive sensor104) is requested, it may be called first from the cache memory. If therequested node touch data is present in the cache memory, the cachememory returns the requested touch data of that first or second tiernode. However, if the requested touch data is not present in the cachememory then the following may occur: 1) If the column of the requestedtouch data is in the range of the cache window then perform the mutualscan of that column and add the touch data to the cache memory, or 2) Ifthe column of the requested touch data is not in the range of thepresent cache window then shift the cache window range and perform themutual scan of the new column and add the resulting touch data from thenew cache window to the cache memory.

Referring to FIG. 9, depicted are a graph of self scan values and atable of mutual scan values for two touch peak detection data, accordingto specific example embodiments of this disclosure. Since a self scan isperformed in only one axis (e.g., one column), it is possible for twotouches that are off by a single column to only show a single peak. Forthe example data values shown in FIG. 9, two touches may have occurred,one at self scan data value 422 and the other indicated at self scandata value 420. Without being aware of change of slopes greater than2:1, the potential touch represented by self scan data value 420 mayhave been missed. A first touch may cause data value 422 and a secondtouch may cause data value 420. The processes of Peak Detection 510 andNudge 512 (FIG. 5), as described hereinabove, may further define thesemultiple touches as described herein. Once each multiple touch has beendefined a force thereof may be determined and associated its respectivetouch.

Referring to FIG. 24, depicted is schematic plan view of a finger of ahand touching a surface of a touch sensor, according to a specificexample embodiment of this disclosure. A hand of a user, generallyrepresented by the numeral 2400, may hover over a face of a touch sensor102, e.g., touch screen or panel, having a plurality of locations thatwhen at least one of the plurality of locations is touched by a finger2402 of the hand 2400, the location and on the face of the touch sensor102 force thereto is detected and stored for further processing asdisclosed herein. For example, a light touch of the finger 2402 on theface of the touch sensor 102 may select an object (not shown) displayedby a visual display integral therewith. Upon the finger 2402 pressing alittle harder at the touch location the selected object may be locked inplace. Pressing even harder on the locked object and then gesturing tomove the object may release the lock on the object. Another example,pressing on the object (not shown) selects the object, then pressingharder fixes the object's location. Releasing the pressure (force) onthe object then pressing hard on the object again would release theobject to move again.

Referring to FIG. 25, depicted is schematic plan view of two fingers ofa hand touching a surface of a touch sensor, according to anotherspecific example embodiment of this disclosure. A finger 2504 over aleft portion of the touch sensor 102 and another finger 2506 over aright portion of the touch sensor 102 may be used to rotate an object(not shown) displayed by a visual display integral therewith. Forexample, when the left oriented finger 2504 presses harder than theright oriented finger 2506 the object may rotate counterclockwise aboutan axis parallel with the axis of the wrist/arm. When the right orientedfinger 2506 presses harder than the left oriented finger 2504 the objectmay rotate clockwise about the axis parallel with the axis of thewrist/arm. When the wrist is rotated while the fingers 2504 and 2506 aretouching the face of the touch sensor 102, the object (not shown) mayrotate substantially perpendicular to the axis of the wrist/arm(substantially parallel with the face of the touch sensor 102) and inthe direction of the rotation of the fingers 2504 and 2506.

Referring to FIG. 26, depicted is schematic plan view of a finger of ahand touching an object projected on a surface of a touch sensor,according to yet another specific example embodiment of this disclosure.Pressing on the face of the touch sensor 102 over an object 2608 with afinger 2402 may be used to scale the size of the object. For example,the greater the force of the press (touch) by the finger 2402 the largerin size that the object may be displayed. The object may remain at thenew larger size or may vary in size in proportion to the force appliedto the face of the touch sensor, e.g., a harder press will result in alarger in size object and a softer press will result in a smaller insize object. The size of the object may follow the amount of forceapplied by the finger 2402 to the face of the touch sensor 102.

Referring to FIG. 27, depicted is schematic plan view of a finger of ahand touching a document projected on a surface of a touch sensor,according to still another specific example embodiment of thisdisclosure. A document 2710 may displaced on a face of the touch sensor102. A touch of sufficient force by the finger 2402 to a portion of thedocument 2710 may be used to flip through pages thereof. A finger 2402movement, for example but not limited to, the right may remove currentlyvisible page(s) of the document 2710. Pressing on a removed page nearanother new document (not shown) may be used to flip through the newdocument (not shown) and/or may allow insertion of the remove page intothe new document. For example, pressing on a document 2710 flips througha stack of document pages. If the finger 2402 then moves off thedocument the selected page may be removed. Pressing on a single pagenext to a document may flip through the document and then may insert thepage when it is drug over the document.

Referring to FIG. 28, depicted is schematic plan view of a finger of ahand touching one digit of a number projected on a surface of a touchsensor, according to another specific example embodiment of thisdisclosure. At least one number or letter, e.g., alpha-numeric character2814, may be displayed on the face of the touch sensor. A finger 2402may press on a portion of the character 2814 wherein the amount of forceby the finger 2402 may cause the character 2814 to increase or decreasealpha-numerically in value, accordingly. When the character 2814 is adesired value then the finger 2402 may slide off, e.g., up, down orsideways, to leave editing of the character 2814. An increase in thealpha-numeric value may be controlled by pressing the finger 2402 on anupper portion of the character 2814, and a decrease in the alpha-numericvalue may be controlled by pressing the finger 2402 on a lower portionof the character 2814. The speed of increase or decrease of thealpha-numeric value may be proportional to the amount of force appliedby the finger 2402 to surface of the touch sensor 102. More than onefinger may be used to contemporaneously increase and or decrease morethan one alpha-numeric character. For example, a finger 2402 may bepressed on a single digit 2814 of a number (124779 shown), whereby thesingle digit 2814 sequentially flips through numerical values, e.g.,0-9. When a desired numerical value is displaced, the finger 2402 may bedragged off the digit to leave the selected numerical value.

Referring to FIGS. 13 to 23, depicted are schematic process flowdiagrams for touch decoding and force determination of the decodedtouch(es), according to specific example embodiments of this disclosure.FIG. 13 shows a general overview of possible processes for multi-touchdecoding and force determination for a touch sensor 102 enabled device.It is contemplated and within the scope of this disclosure that more,fewer and/or some different processes may be utilized with a touchsensor 102 enabled device and still be within the scope, intent andspirit of this disclosure. In step 1050 a device is started, actuated,etc., when in step 1052 power is applied to the device. In step 1054 thedevice may be initialized, and thereafter in step 1056 the process ofTouch Identification 504 may begin. Once the process of TouchIdentification 504 in step 1056 has determined the touch locations, step1057 determines the force applied at each of those touch locations. Instep 1058 touch and force tracking may be performed on those touchesidentified in step 1056. In step 1060 the touch and force data may befurther processed if necessary, otherwise it may be transmitted to theprocessing and control logic of the device for display and/or control ofthe device's intended purpose(s) in step 1062.

In the descriptions of the following process steps references to “top”or “north” channel or node will mean the channel or node above anotherchannel or node, “bottom” or “south” channel or node will mean thechannel or node below another channel or node, “left” or “west” channelor node will mean the channel or node to the left of another channel ornode, and “right” or “east” channel or node will mean the channel ornode to the right of another channel or node.

Referring to FIG. 14, a flow diagram of a process of TouchIdentification 504 is shown and described hereinafter. In step 1102 theprocess of Touch Identification 504 (FIG. 5) begins. In step 1104 a selfscan of all channels on one axis may be performed, e.g., either allcolumns or all rows. In step 1106 the first self scan value may beexamined. In step 1108 the (first or subsequent) self scan value may becompared to a self touch threshold value.

A self peak detection process 1100 may comprise steps 1110 to 1118, andis part of the overall process of Peak Detection 510 (FIG. 5). If theself scan value is less than the self touch threshold value asdetermined in step 1108, then step 1238 (FIG. 15) may determine whetherthere are any additional self scan values to be examined. However, ifthe self scan value is equal to or greater than the self touch thresholdvalue as determined in step 1108, then step 1110 may calculate a leftslope between the self scan value and a self scan value of the channelto the left of the present channel. Then step 1112 may calculate a rightslope between the self scan value and a self scan value of the channelto the right of the present channel.

Step 1114 determines whether the left slope may be greater than zero(positive slope) and the right slope may be less than zero (negativeslope), identifying a peak. If a yes result in step 1114, then step 1120may perform mutual scan measurements on each node of the channelselected from the self scan data. If a no result in step 1114, then step1116 determines whether the left slope may be greater than zero(positive slope) and greater than the right slope may be, for examplebut is not limited to, two times (twice) greater than the right slope.If a yes result in step 1116, then in step 1120 mutual scan measurementsmay be performed on each node of the selected self scan channel. If a noresult in step 1116, then step 1118 determines whether the left slopemay be, for example but is not limited to, less than zero (negativeslope) and greater than a percentage of the right slope, e.g., fifty(50) percent. If a yes result in step 1116, then step 1120 may performmutual scan measurements on each node of the channel selected from theself scan data. If a no result in step 1116, then step 1238 (FIG. 15)may determine whether there are any additional columns to be examinedbased upon the self scan values thereof. Step 1122 may examine a firstmutual scan value.

Referring to FIG. 15, a mutual peak detection process 1244 may comprisesteps 1226 to 1234, and is part of the overall Peak Detection process510 (FIG. 5). Step 1224 may compare the (first or subsequent) mutualscan value to a mutual touch threshold value, wherein if the mutual scanvalue is less than the mutual touch threshold value then step 1236 maydetermine whether there are any additional mutual scan values to beexamined. However, if the mutual scan value is equal to or greater thanthe mutual touch threshold value then step 1226 may calculate a slope tothe next mutual scan value node, then step 1228 may calculate a slope tothe previous mutual scan value node.

Step 1230 determines whether the next slope may be less than zero(negative slope) and the previous slope may be greater than zero(positive slope). If a yes result in step 1230, then step 1350 (FIG. 16)may start the process of Nudge 512 and/or the process of Interpolation514 (FIG. 5). If a no result in step 1230, then step 1232 determineswhether the next slope may be, for example but is not limited to,greater than zero (positive slope) and less than a percentage of theprevious slope. If a yes result in step 1232, then step 1350 (FIG. 16)may start the process of Nudge 512 and/or the process of Interpolation514 (FIG. 5). If a no result in step 1232, then step 1234 determineswhether the next slope may be, for example but is not limited to, lessthan zero (negative slope) and greater than the previous slope. If a yesresult in step 1234, then step 1350 (FIG. 13) may start the process ofNudge 512 and/or the process of Interpolation 514 (FIG. 5). If a noresult in step 1234, then step 1236 determines whether there may be anyadditional mutual values to be examined. If a yes result in step 1236,then step 1242 may examine a next mutual value. If a no result in step1236, then step 1238 determines whether there may be any additional selfscan values to be examined. If a yes result in step 1238, then step 1240examines a next self scan value that may be returned to step 1108 (FIG.14) for further processing thereof. If a no result in step 1238, then instep 1244 a touch detection frame may be complete.

Referring to FIGS. 16-18, flow diagrams of processes for Nudge 512 andInterpolation 514 (FIG. 5) are shown and described hereinafter. Step1350 may start the process of Nudge 512 and/or the process ofInterpolation 514 by using a peak location from the process of TouchIdentification 504 (FIG. 5) and may comprise the following processsteps: Step 1352 determines whether there may be a valid node to thenorth. If a no result in step 1352, then continue to step 1360. If a yesresult in step 1352, then step 1354 may make a mutual scan measurementof the node to the north. Step 1356 determines whether the mutual scandata of the north node may be greater than the current node. If a noresult in step 1356, then continue to step 1360. If a yes result in step1356, then in step 1358 the north node may become the current node, andthen continue to step 1486 (FIG. 17).

Step 1360 determines whether there may be a valid node to the south. Ifa no result in step 1360, then continue to step 1470 (FIG. 17). If a yesresult in step 1360, then step 1362 may make a mutual scan measurementof the node to the south. Step 1364 determines whether the mutual scandata of the south node may be greater than the current node. If a noresult in step 1364, then continue to step 1470 (FIG. 17). If a yesresult in step 1364, then in step 1366 the south node may become thecurrent node, and then continue to step 1486 (FIG. 17).

Referring to FIG. 17, step 1470 determines whether there may be a validnode to the east. If a no result in step 1470, then continue to step1478. If a yes result in step 1470, then step 1472 may make a mutualscan measurement of the node to the east. Step 1474 determines whetherthe mutual scan data of the east node may be greater than the currentnode. If a no result in step 1474, then continue to step 1478. If a yesresult in step 1474, then in step 1476 the east node may become thecurrent node, and then continue to step 1486.

Step 1478 determines whether there may be a valid node to the west. If ano result in step 1478, then continue to step 1502 (FIG. 18). If a yesresult in step 1478, then step 1480 may make a mutual measurement of thenode to the west. Step 1482 determines whether the mutual scan data ofthe west node may be greater than the current node. If a no result instep 1482, then continue to step 1502 (FIG. 18). If a yes result in step1482, then in step 1484 the west node may become the current node. Step1486 determines whether a touch point may already exist at the selectednode. If a no result in step 1486, then continue to step 1352 (FIG. 16).If a yes result in step 1486, then step 1488 may eliminate the currentpeak, and then continue to step 1236 (FIG. 15).

Referring to FIG. 18, a flow diagram of a process of Interpolation 514may comprise steps 1502 to 1518. Step 1502 determines whether there maybe a valid node to the left. If a no result in step 1502, then continueto step 1510 wherein the left node value may be defined as a centervalue minus a right value then continue to step 1506. If a yes result instep 1502, then step 1504 may perform a mutual scan measurement on thenode to the left. Then step 1506 determines whether there may be a validnode to the right. If a no result in step 1506, then continue to step1512 wherein the right node value may be defined as a center value minusa left value then continue to step 1516. If a yes result in step 1506,then step 1508 may perform a mutual scan measurement on the node to theright. Step 1516 may determine a fine position by subtracting the leftvalue from the right value, dividing the difference thereof by thecenter value, and then multiplying the result by, for example but is notlimited to, the number 64. It is contemplated and within the scope andspirit of this disclosure that many ways of determining valid peaks andnodes may be used as one having ordinary skill in the art of touchdetection and tracking could readily implement by having knowledge basedupon the teachings of this disclosure

After step 1516 has completed the aforementioned calculations, step 1514determines whether an Interpolation 514 may have been performed for eachaxis. If a no result in step 1514, then step 1518 may interpolateanother axis, thereafter steps 1502 to 1516 may be repeated, with“above” replacing “left” and “below” replacing “right” in each step. Ifa yes result in step 1514, then step 1520 may add this touch point to alist of all detected touch points. Then step 1522 may return to step1236 (FIG. 15) for any additional mutual scan values to be examined.

Referring to FIG. 19, a flow diagram of a process of ForceIdentification 505 is shown and described hereinafter. After a new touchpoint is added in step 1520 (FIG. 18), step 1550 starts the process ofdetermining the force applied to the touch sensor 102 at that touchpoint. Untouched mutual capacitances of each point on the touch sensor102 may be stored in a memory of the digital processor 106 after a “notouch” calibration scan of all points of the touch sensor 102 isperformed. When a force is applied to a touch location, the value of themutual capacitance of that touch location will increase. In step 1552that mutual capacitance change may be determined, and in step 1554 themutual capacitance change may be converted into a force value. Once thisforce value is determined, in step 1556 the force value may then beassociated with the new touch point and stored in the list of alldetected touches.

Referring to FIGS. 20, 21 and 22, flow diagrams of a process of Touchand Force Tracking 506 are shown and described hereinafter. In step 1602the process of Touch and Force Tracking 506 may start by using thepreviously found and current touch locations. Step 1604 determineswhether there may be any current touch locations. If a yes result instep 1604, then step 1606 may select the first of the current touchlocations, and thereafter may continue to step 1722 (FIG. 21). If a noresult in step 1604, then step 1610 determines whether there may be anyprevious touch location(s). If a yes result in step 1610, then step 1612may select the first previous touch location. If a no result in step1610, then at step 1611 tracking is complete.

Step 1614 determines whether the previous touch location may beassociated with a current touch location. If a no result in step 1614,then step 1608 may assert an output of “touch no longer present atprevious touch location, stop tracking,” and then return to step 1616.If a yes result in step 1614, then step 1616 determines whether theremay be any more previous touch locations. If a no result in step 1616,then at step 1620 tracking touch locations is complete and the touchlocation data may be transmitted as Data Output 508 (FIG. 5) for furtherprocessing by the microcontroller 112 (FIG. 1). If a yes result in step1616, then step 1618 may select the next previous touch location, andthereafter return to step 1614.

Referring to FIG. 21, step 1722 determines whether there may be anyprevious touch locations. If a no result in step 1722, then continue tostep 1868 (FIG. 22) wherein a “New Touch to track is identified” atcurrent location, and thereafter continue to step 1856 (FIG. 22). If ayes result in step 1722, then step 1724 may set a temporary weight valueto a maximum weight value. Step 1726 may select the first of theprevious touch locations. Then step 1728 may measure a distance betweenthe selected current touch location and the selected previous touchlocation to determine a current distance (weight value) therebetween.Step 1730 determines whether the current weight value may be less thanthe temporary weight value. If a yes result in step 1730, then step 1732may set the temporary weight value to the current weight value andthereafter may record the selected previous touch location as atemporary location and continue to step 1734. If a no result in step1730, then step 1734 determines whether there may be more previous touchlocations. If a yes result in step 1734, then step 1736 may select thenext previous touch location, and thereafter return to step 1728. If ano result in step 1734, then step 1738 determines whether the temporarylocation may have already been assigned to a different current location.If a yes result in step 1738, then step 1740 may calculate a next worstweight value for the current location and for an assigned currentlocation, and thereafter continue to step 1860 (FIG. 22). If a no resultin step 1738, then continue to step 1850 (FIG. 22).

Referring to FIG. 22, step 1850 determines whether the weight value maybe below a maximum association threshold. If a no result in step 1850,then step 1854 may identify a new touch location for tracking. If a yesresult in step 1850, then step 1852 may assign a new temporary locationto the current location and then continue to step 1856. Step 1860determines whether the next worst weight value for the current locationmay be less than the next worst weight value for the assigned location.If a yes result in step 1860, then step 1862 may set the temporarylocation to the next worst location and thereafter continue to step1856. If a no result in step 1860, then step 1864 may set the assignedlocation to the next worst weight value. Step 1866 may select a movedassignment location and thereafter return to step 1722 (FIG. 21). Step1856 determines whether there may be more current touch locations. If ayes result in step 1856, then step 1858 may select the next currenttouch location and thereafter return to step 1722 (FIG. 21).

Referring to FIG. 23, depicted is a process flow diagram for a columncache, according to specific example embodiments of this disclosure.Step 1902 may received a mutual scan location request. Step 1904determines whether the mutual scan area location requested may be storedin the cache memory. If a yes result in step 1904, then step 1920determines whether the mutual scan data stored in the cache memory maybe valid. If a yes result in step 1920, then step 1922 may return mutualscan data to the cache memory. If a no result in step 1920, then step1918 may perform a mutual scan at the requested location, wherein step1916 may write the mutual scan data to a location in the cache memoryand then return back to step 1922.

If a no result in step 1904, then step 1906 determines whether therequested touch location may be beyond the right edge of the cache. If ayes result in step 1906, then step 1908 may de-allocate the left-mostcolumn of mutual scan data from the cache memory. In step 1910 thede-allocated mutual scan data may be allocated to the right edge of thecache memory so as to move the edge values thereof, and thereafterreturn to step 1904. If a no result in step 1906, then step 1914 mayde-allocate the right-most column of data from the cache memory. In step1912 the de-allocated mutual scan data may be allocated to the left edgeof the cache memory so as to move the edge values thereof, andthereafter return to step 1904.

While embodiments of this disclosure have been depicted, described, andare defined by reference to example embodiments of the disclosure, suchreferences do not imply a limitation on the disclosure, and no suchlimitation is to be inferred. The subject matter disclosed is capable ofconsiderable modification, alteration, and equivalents in form andfunction, as will occur to those ordinarily skilled in the pertinent artand having the benefit of this disclosure. The depicted and describedembodiments of this disclosure are examples only, and are not exhaustiveof the scope of the disclosure.

What is claimed is:
 1. A method for decoding multiple touches and forcesthereof on a touch sensing surface, said method comprising the steps of:scanning a plurality of channels aligned on an axis for determining selfcapacitance values of each of the plurality of channels; comparing theself capacitance values to determine which one of the channels has alocal maximum self capacitance value; scanning a plurality of nodes ofthe at least one channel having the local maximum self capacitance valuefor determining mutual values of the nodes; comparing the mutual valuesto determine which one of the nodes has the largest mutual capacitancevalue, wherein the node having the largest mutual capacitance value onthe local maximum self capacitance value channel is a potential touchlocation; and determining a force at the potential touch location from achange in the mutual capacitance values of the node at the potentialtouch location during no touch and during a touch thereto.
 2. The methodaccording to claim 1, further comprising the steps of: determining if atleast one of the self values is greater than a self touch threshold,wherein if yes then continue to the step of scanning a plurality ofnodes of the at least one channel having the largest self value, and ifno then end a touch detection frame as completed.
 3. The methodaccording to claim 1, further comprising the step of: determining leftand right slope values for the at least one self value, wherein: theleft slope value is equal to the at least one self value minus a selfvalue of a channel to the left of the at least one channel, and theright slope value is equal to the at least one self value minus a selfvalue of a channel to the right of the at least one channel.
 4. Themethod according to claim 3, further comprising the steps of:determining if the left slope value is greater than zero (0) and theright slope value is less than zero (0), wherein if yes then return tothe step of scanning the plurality of nodes of the at least one channel,and if no then continue to next step; determining if the left slopevalue is greater than zero (0) and greater than the right slope value,wherein if yes then return to the step of scanning the plurality ofnodes of the at least one channel, and if no then continue to next step;determining if the left slope value is less than zero (0) and greaterthan a percentage of the right slope value, wherein if yes then returnto the step of scanning the plurality of nodes of the at least onechannel, and if no then continue to next step; determining if there isanother self value, wherein if yes then return to the step ofdetermining if at least one of the self values is greater than the selftouch threshold value using the another self value, and if no then end atouch detection frame as completed.
 5. The method according to claim 2,further comprising the steps of: determining if at least one of themutual values is greater than a mutual touch threshold, wherein if yesthen continue to the step of scanning a plurality of nodes of the atleast one channel having the largest self value, and if no then end thetouch detection frame as completed.
 6. The method according to claim 5,further comprising the steps of: determining a next slope value, whereinthe next slope value is equal to a current mutual value minus a nextmutual value of a next node; and determining a previous slope value,wherein the previous slope value is equal to the current mutual valueminus a previous mutual value of a previous node.
 7. The methodaccording to claim 6, further comprising the steps of: determining ifthe next slope value is less than zero (0) and the previous slope valueis greater than zero (0), wherein if yes then begin the step ofvalidating the node, and if no then continue to next step; determiningif the next slope value is greater than zero (0) and less than apercentage of the previous slope value, wherein if yes then begin thestep of validating the node, and if no then continue to next step;determining if the next slope value is less than zero (0) and greaterthan the previous slope value, wherein if yes then begin the step ofvalidating the node, and if no then continue to next step; determiningif there is another mutual value, wherein if yes then return to the stepof determining if at least one of the mutual values is greater than themutual touch threshold, and if no then continue to the next step; anddetermining if there is another self value, wherein if yes then examineanother self value and return to the step of determining if at least oneof the self values is greater than a self touch threshold, and if nothen end the touch detection frame as completed.
 8. The method accordingto claim 7, wherein the step of validating the node comprises the stepsof: identifying the node having a local maximum mutual value as acurrent node; determining if there is a valid node north of the currentnode, wherein if no then continue to the step of determining if there isa valid node south of the current node, and if yes then perform a mutualmeasurement on the north node and continue to the next step; determiningif the north node is greater then the current node, if yes then make thenorth node the current node and continue to the step of determiningwhether a touch point already exists at this node, and if no thencontinue to the next step; determining if there is a valid node south ofthe current node, wherein if no then continue to the step of determiningif there is a valid node east of the current node, and if yes thenperform a mutual measurement on the south node and continue to the nextstep; determining if the south node is greater then the current node,wherein if yes then make the south node the current node and continue tothe step of determining whether a touch point already exists at thisnode, and if no then continue to the next step; determining if there isa valid node east of the current node, wherein if no then continue tothe step of determining if there is a valid node west of the currentnode, and if yes then perform a mutual measurement on the east node andcontinue to the next step; determining if the east node is greater thenthe current node, if yes then make the east node the current node andcontinue to the step of determining whether a touch point already existsat this node, and if no then continue to the next step; determining ifthere is a valid node west of the current node, wherein if no thencontinue to the step of determining if there is a valid node left of thecurrent node, and if yes then perform a mutual measurement on the westnode and continue to the next step; determining if the west node isgreater then the current node, if yes then make the west node thecurrent node and continue to the step of determining whether a touchpoint already exists at this node, and if no then continue to the nextstep; determining if there is a valid node left of the current node,wherein if no then define a left mutual value as a center mutual valueminus a right mutual value and continue to the step of determining afine position for the node, and if yes then perform a mutual measurementon the left node and continue to the next step; determining if there isa valid node right of the current node, wherein if no then define themutual value as the center mutual value minus the left mutual value andcontinue to the step of determining the fine position for the node, andif yes then perform a mutual measurement on the right node and continueto the next step; defining a fine position of the node by subtractingthe left value from the right value, dividing this difference by thecenter value and multiplying the result thereof by 64 and continue tothe next step; and determining whether interpolation was performed foreach axis, wherein if yes, then add another touch point to a list of alldetected touch points and return to the step of determining if there areadditional mutual values, and if no, then interpolate an other axis byusing left and right nodes of the other axis for starting again at thestep of determining if there is a valid node left of the current node.9. A system for determining gesturing motions and forces thereof on atouch sensing surface having a visual display, said system comprising: afirst plurality of electrodes arranged in a parallel orientation havinga first axis, wherein each of the first plurality of electrodescomprises a self capacitance; a second plurality of electrodes arrangedin a parallel orientation having a second axis substantiallyperpendicular to the first axis, the first plurality of electrodes arelocated over the second plurality of electrodes and form a plurality ofnodes comprising overlapping intersections of the first and secondplurality of electrodes, wherein each of the plurality of nodescomprises a mutual capacitance; a flexible electrically conductive coverover the first plurality of electrodes, wherein a face of the flexibleelectrically conductive cover forms the touch sensing surface; aplurality of deformable spacers between the flexible electricallyconductive cover and the first plurality of electrodes, wherein theplurality of deformable spacers maintains a distance between theflexible electrically conductive cover and the first plurality ofelectrodes; a digital processor and memory, wherein digital outputs ofthe digital processor are coupled to the first and second plurality ofelectrodes; an analog front end coupled to the first and secondplurality of electrodes; an analog-to-digital converter (ADC) having atleast one digital output coupled to the digital processor; whereinvalues of the self capacitances are measured for each of the firstplurality of electrodes by the analog front end, the values of themeasured self capacitances are stored in the memory; values of themutual capacitances of the nodes of at least one of the first electrodeshaving at least one of the largest values of self capacitance aremeasured by the analog front end, the values of the measured mutualcapacitances are stored in the memory; and the digital processor usesthe stored self and mutual capacitance values for determining agesturing motion and at least one force associated therewith applied tothe touch sensing surface.
 10. The system according to claim 9, whereinthe digital processor, memory, analog front end and ADC are provided bya digital device.
 11. The system according to claim 10, wherein thedigital device comprises a microcontroller.
 12. The system according toclaim 9, wherein the flexible electrically conductive cover comprises aflexible metal substrate.
 13. The system according to claim 9, whereinthe flexible electrically conductive cover comprises a flexiblenon-metal substrate and an electrically conductive coating on a surfacethereof.
 14. The system according to claim 9, wherein the flexibleelectrically conductive cover comprises a substantially lighttransmissive flexible substrate and a coating of Indium Tin Oxide (ITO)on a surface of the flexible substrate.
 15. The system according toclaim 9, wherein the flexible electrically conductive cover comprises asubstantially light transmissive flexible substrate and a coating ofAntimony Tin Oxide (ATO) on a surface of the flexible substrate.
 16. Amethod according to claim 9 for determining the gesturing motion and theat least one force associated therewith, said method comprising the stepof: selecting an object shown in the visual display by touching theobject with a first force.
 17. The method according to claim 16, furthercomprising the step of locking the object in place by touching theobject with a second force.
 18. The method according to claim 17,further comprising the steps of releasing the lock on the object bytouching the object with a third force and moving the touch in adirection across the touch sensing surface.
 19. The method according toclaim 17, further comprising the steps of releasing the lock on theobject by removing the touch at a first force to the object and thentouching the object again at a second force.
 20. The method according toclaim 19, wherein the second force is greater than the first force. 21.A method according to claim 9 for determining the gesturing motion andthe at least one force associated therewith, said method comprising thesteps of: touching a right portion of an object shown in the visualdisplay with a first force; touching a left portion of the object with asecond force; wherein when the first force is greater than the secondforce the object rotates in a first direction, and when the second forceis greater than the first force the object rotates in a seconddirection.
 22. The method according to claim 21, wherein the firstdirection is clockwise and the second direction is counter-clockwise.23. The method according to claim 21, wherein when the touch at the leftportion of the object moves toward the right portion of the object theobject rotates in a third direction, and when the touch at the rightportion of the object moves toward the left portion of the object theobject rotates in a fourth direction.
 24. The method according to claim23, wherein the first and second directions are substantiallyperpendicular to the third and fourth directions.
 25. A method accordingto claim 9 for determining the gesturing motion and the at least oneforce associated therewith, said method comprising the step of: changinga size of an object shown in the visual display by touching a portion ofthe object with a force, wherein the greater the force the large thesize of the object becomes.
 26. The method according to claim 25,wherein the size of the object is fixed when the touch and the force aremoved off of the object.
 27. The method according to claim 25, whereinthe size of the object varies in proportion to the amount of forceapplied to the object.
 28. A method according to claim 9 for determiningthe gesturing motion and the at least one force associated therewith,said method comprising the step of: handling pages of a document shownin the visual display by touching a portion of the document with a forcesufficient to flip through the pages.
 29. The method according to claim28, further comprising the step of removing a currently visible page bymoving the touch at the currently visible page in a first directionparallel with the touch sensing surface.
 30. The method according toclaim 29, further comprising the step of inserting the removed page intoa new document by touching the removed page with the force near the newdocument.
 31. A method according to claim 9 for determining thegesturing motion and the at least one force associated therewith, saidmethod comprising the step of: changing values of an alpha-numericcharacter shown in the visual display by touching the alpha-numericcharacter with different forces, wherein a first force will cause thealpha-numeric character to increment and a second force will cause thealpha-numeric character to decrement.
 32. The method according to claim31, wherein the value of the alpha-numeric character is locked when thetouch is moved off of the alpha-numeric character and parallel to thetouch sensing surface.
 33. A method according to claim 9 for determiningthe gesturing motion and the at least one force associated therewith,said method comprising the steps of: incrementing a value of analpha-numeric character shown in the visual display by touching an upperportion of the alpha-numeric character with a force; and decrementingthe value of the alpha-numeric character by touching an lower portion ofthe alpha-numeric character with the force.
 34. The method according toclaim 33, wherein the value of the alpha-numeric character is lockedwhen the touch is moved off of the alpha-numeric character and parallelto the touch sensing surface.
 35. The method according to claim 33,wherein a speed of incrementing or decrementing the value of thealpha-numeric character is proportional to a magnitude of the forceapplied to upper portion or lower portion, respectively, of thealpha-numeric character.
 36. The method according to claim 31, whereinthe alpha-numeric character is a number.
 37. The method according toclaim 31, wherein the alpha-numeric character is a letter of analphabet.